package com.dingreading.cloud.admin.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 实体类。
 *
 * @author Administrator
 * @since 2023-11-22
 */
@Data
@Table(value = "wh_stock_out_goods_log")
public class WhStockOutGoodsLog implements Serializable {

    @Id(keyType = KeyType.Auto)
    private Long id;

    /**
     * 添加时间
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()")
    private Date addTime;

    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()", onUpdateValue = "now()")
    private Date editTime;

    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date refundTime;

    /**
     * 出库订单号
     */
    @ApiModelProperty(value = "出库订单号")
    private String outCode;

    /**
     * 商品订单号
     */
    @ApiModelProperty(value = "商品订单号")
    private String orderCode;

    /**
     * 购物车商品id
     */
    @ApiModelProperty(value = "购物车商品id")
    private Long shopCartId;

    /**
     * 入库订单号
     */
    @ApiModelProperty(value = "入库订单号")
    private String inCode;

    /**
     * 采购订单号
     */
    @ApiModelProperty(value = "采购订单号")
    private String purchaseCode;

    /**
     * 采购商品规格id
     */
    @ApiModelProperty(value = "采购商品规格id")
    private Long purchaseGoodsId;

    /**
     * 供应商id
     */
    @ApiModelProperty(value = "供应商id")
    private Long supplierId;

    /**
     * 供应商名称
     */
    @ApiModelProperty(value = "供应商名称")
    private String supplierName;

    /**
     * 采购商品id
     */
    @ApiModelProperty(value = "采购商品id")
    private Long goodsId;

    /**
     * 采购商品名称
     */
    @ApiModelProperty(value = "采购商品名称")
    private String goodsName;

    /**
     * 采购商品规格id
     */
    @ApiModelProperty(value = "采购商品规格id")
    private Long goodsTypeId;

    /**
     * 采购商品规格名称
     */
    @ApiModelProperty(value = "采购商品规格名称")
    private String goodsTypeName;

    /**
     * 商品规格单位
     */
    @ApiModelProperty(value = "商品规格单位")
    private String unit;

    /**
     * 是否实体货物
     * 0.不是 1.是
     */
    @ApiModelProperty(value = "是否实体货物 0.不是 1.是")
    private Integer realStatus;

    /**
     * 出库商品数量
     */
    @ApiModelProperty(value = "出库商品数量")
    private Integer num;

    /**
     * 创建人id
     */
    @ApiModelProperty(value = "创建人id")
    private Long creatorId;

    /**
     * 创建人uid
     */
    @ApiModelProperty(value = "创建人uid")
    private String creatorUid;

    /**
     * 创建人姓名
     */
    @ApiModelProperty(value = "创建人姓名")
    private String creator;

    /**
     * 退回人id
     */
    @ApiModelProperty(value = "退回人id")
    private Long refundId;

    /**
     * 退回人uid
     */
    @ApiModelProperty(value = "退回人uid")
    private String refundUid;

    /**
     * 退回人姓名
     */
    @ApiModelProperty(value = "退回人姓名")
    private String refundName;

    /**
     * 状态 -1.已退货 0.已取消 1.出库完成
     */
    @ApiModelProperty(value = "状态 1-1.已退货 0.已取消 1.出库完成")
    private Integer status;

    /**
     * 状态名
     */
    @ApiModelProperty(value = "状态名")
    private String statusName;

    /**
     * 出库方式 1.自营仓库 2.线上发货 3.第三方仓库
     */
    @ApiModelProperty(value = "出库方式")
    private Integer stockOutMethod;

    /**
     * 发货仓库id
     */
    @ApiModelProperty(value = "发货仓库id")
    private Long deliveryWarehouseId;

    /**
     * 发货仓库名称
     */
    @ApiModelProperty(value = "发货仓库名称")
    private String deliveryWarehouseName;

    /**
     * 更新人uid
     */
    @ApiModelProperty(value = "更新人uid")
    private String lastStaffUid;

    /**
     * 更新人姓名
     */
    @ApiModelProperty(value = "更新人姓名")
    private String lastStaffName;

    /**
     * 商品组合类型 0.普通商品 1.组合商品
     */
    @ApiModelProperty(value = "商品组合类型")
    private Integer comboType;

    /**
     * 父商品组合类型 0.普通商品 1.组合商品
     */
    @ApiModelProperty(value = "组合类型")
    private Integer mainComboType;

    /**
     * 组合商品的父购物车记录uid
     */
    @ApiModelProperty(value = "组合商品的父购物车记录uid")
    private String mainShopCartUid;

    /**
     * 父商品id
     */
    @ApiModelProperty(value = "父商品id")
    private Long mainGoodsId;

    /**
     * 父商品名称
     */
    @ApiModelProperty(value = "父商品名称")
    private String mainGoodsName;

    /**
     * 父商品分类id
     */
    @ApiModelProperty(value = "父商品种类id")
    private Long mainGoodsTypeId;

    /**
     * 父商品分类名称
     */
    @ApiModelProperty(value = "父商品分类名称")
    private String mainGoodsTypeName;

    /**
     * 重量/克
     */
    @ApiModelProperty(value = "重量/克")
    private Double weight;

    /**
     * 总重量/克
     */
    @ApiModelProperty(value = "总重量/克")
    private Double totalWeight;
}
